<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /*
            props和$emit 适用于父子组件
                props父传子之间传，直接给子组件标签写属性
                $emit子传父之间传，$emit两个参数 参数一：通信事件名称，参数二：通信内容，在父组件加监听
            ref、$parent/$children  适用于父子组件
                ref 给子组件写ref属性然后子组件中定义的data可以直接使用this.$refs.子组件ref的属性值.需要获取子组件的数据 即可
                $children 在父组件的方法中调用this.$children可以获取到所有的子组件,获取的是一个数组
                $parent 在子组件中使用this.$parent
            EventBus（$on/$emit）    隔代、父子、兄弟组件
                使用之前注册一个vue实例，
                发送使用$emit发送参数：第一个事件名称，第二个参数事件的数据，
                获取使用$on获取参数：第一个事件名称，第二个参数事件的数据
            $attrs/$listeners   适用于隔代传值
            provide/inject  适用于隔代
                在需要传递的组件中定义provider来提供变量,在其他组件中使用inject来获取变量，但是这个类似于全局作用域可能会导致命名污染问题
            vuex
                vuex中有四个对象state、mutations、actions、modules类似于公用的属性
            localStorage 缓存
                setItem()上传到缓存，getItem()下载下来
            
        */ 
    </script>
</body>
</html>